pub mod build_target;
pub mod change_unity_symbol;
pub mod cmd;
pub mod copy_entries_into;
pub mod download;
pub mod git;
pub mod replace_text;
pub mod unity;
pub mod unzip;

use crate::core::error::operation_error::OperationError;
use crate::core::step_context::StepContext;
use std::sync::Arc;
use tonic::async_trait;

#[async_trait]
pub trait Operation: Send + Sync {
    async fn run(&mut self, context: Arc<StepContext>) -> Result<(), OperationError>;
}
